﻿// ----------------------------------------------------------------------------
//  Copyright (C) 成都联宇创新科技有限公司 版权所有。 
//      
//  文件名：NHibernateUnitOfWork.cs
//  文件功能描述：
//  创建标识：骆智慧 2016/03/04 11:37
//     
//  修改标识：骆智慧  2016/03/10/06:27
//  修改描述：
//  ----------------------------------------------------------------------------

#region 导入名称空间

using Common.Logging;
using NHibernate;

#endregion

namespace LightWork.DataAccess
{
    public class NHibernateUnitOfWork : IUnitOfWork
    {
        private readonly ILog _log = LogManager.GetLogger<NHibernateUnitOfWork>();
        private readonly ISessionFactory _sessionFactory;

        public NHibernateUnitOfWork(ISessionFactory sessionFactory)
        {
            _sessionFactory = sessionFactory;
        }

        public void Commit()
        {
            using (var transaction = _sessionFactory.GetCurrentSession().BeginTransaction())
            {
                try
                {
                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
    }
}